package com.zenith.storage.service;

import com.zenith.storage.po.domain.StorageProvider;
import com.zenith.storage.po.vo.StorageProviderVO;

import java.util.List;

/**
 * 存储提供商服务接口
 */
public interface StorageProviderService {
    /**
     * 获取所有存储提供商列表
     *
     * @return 存储提供商列表
     */
    List<StorageProviderVO> listProviders();

    /**
     * 添加存储提供商
     * @param provider 存储提供商信息
     * @return 是否添加成功
     */
    Boolean addProvider(StorageProvider provider);

    /**
     * 更新存储提供商
     * @param provider 存储提供商信息
     * @return 是否更新成功
     */
    Boolean updateProvider(StorageProvider provider);

    /**
     * 删除存储提供商
     * @param id 存储提供商ID
     * @return 是否删除成功
     */
    Boolean deleteProvider(Long id);

    /**
     * 设置默认存储提供商
     * @param id 存储提供商ID
     * @return 是否设置成功
     */
    Boolean setDefaultProvider(Long id);

    /**
     * 获取默认存储提供商
     * @return 默认存储提供商
     */
    StorageProviderVO getDefaultProvider();
}